Many data processing systems use local memory storage methods to store frequently used instructions and data. Local storage allows the data processor to minimize time consuming accesses to external devices. Two common methods of local storage include use of an associative cache and use of a pre-fetch type instruction queue.
The amount of information to be stored to local memory increases with software complexity. Burst transactions allow multiple transfers in response to a single address prompt, and thus reduce access time. Bursting is often used for transferring information to local memory as it is an efficient way of further enhancing the performance of a data processing system. Known bursting schemes perform bursts of up to 256 transfers per burst transaction. As the complexity of data processing systems increases, there is a need for increased transfer capability.
To transfer information to a local memory, the data processor indicates an initial address; the transfer begins at that initial address and is performed independently of the data processor operation. The data processor is free to perform other functions (i.e. process instructions) while the local memory is filling. As the data processor processes instructions it may need to branch to an address which has not been stored in local memory. Ideally, no further information is transferred from the current memory location and transfer begins at the jump address provided by the data processor. For non burst type transactions, the termination is possible after each data transfer. However, if the transfer is a burst transaction there may be significant delay or latency due to the time necessary for completion of the burst. For example, with a modular type data processing system, which resets at the end of the bus cycle, there is no capacity to efficiently terminate a potentially infinite length burst.
Additionally burst type protocols are typically associated with complex systems, where a secure handshake across a backplane and multiple masters require multiple transfers or clocks to terminate a burst transaction. Some protocols do not allow a slave to terminate once a burst transaction has begun. Burst protocols which provide for termination of unwanted words in a cache line are initiated by the master but have an associated latency.
Data processing systems which utilize local memory storage techniques or perform burst type transactions require additional flexibility for dynamic response to the needs of the system. Efficient system operation considers reduced latency associated with burst transfer termination, while increasing the availability of termination methods.